Online content management systems enable users to store content items online so that the content items can be accessed from a variety of client devices. These online content management systems enable a user to upload content items to the online content storage and access the stored content items from the online storage. While these systems do allow the content item to be accessed from multiple client devices, a network connection is required to access the stored content items. To access the content items when a network connection is unavailable, a user must maintain a copy of the content library locally on a client device.
Ensuring that the content library is synchronized between the content storage system and client devices is often left to the user and can result in inconsistent content libraries and lost changes. For example, to maintain a synchronized content library across the content storage system and two client devices, changes made to a content item on a first client device must be uploaded to replace the content item on the content management system and then downloaded to the second client device to replace the content item stored on the second client device. If the user makes revisions to the content item stored on the second client device without first downloading the revised content item, the changes made to the content item on the first client device will not be reflected in the version of the content item stored on the second client device, and vice versa.
Further, content management systems that do manage synchronization of the content libraries are inefficient and time consuming, often replacing the entire content library to synchronize between two devices. Accordingly, a need exists for an improved method of synchronizing a content library across a content management server and client devices.